package cliente;

import java.rmi.*;
import java.rmi.server.*;
import java.util.Vector;
import javax.swing.JOptionPane;
import servidor.Alerta;
////////////////////////////////////////////////////////////////////////////////
public class ClienteImpl extends UnicastRemoteObject implements ClienteInterface {
    private Vector vAlertas;
////////////////////////////////////////////////////////////////////////////////
    public ClienteImpl() throws RemoteException {
        super();
        vAlertas = new Vector();
    }
////////////////////////////////////////////////////////////////////////////////    
    public Vector getvAlertas() {
        return vAlertas;
    }
    
////////////////////////////////////////////////////////////////////////////////
    public void añandirAlerta(Alerta alerta) {
        getvAlertas().add(alerta);
        System.out.println("Alerta añadida en el vector de alertas del cliente: " + alerta.imprimir());
    }
////////////////////////////////////////////////////////////////////////////////
    public void quitarAlerta(Alerta alerta) {
        for (int i = 0; i < getvAlertas().size(); i++) {
            Alerta alAux = (Alerta) getvAlertas().elementAt(i);
            if (alerta.esIgual(alAux)){
                getvAlertas().removeElementAt(i);
                i--;
                System.out.println("Alerta eliminada del vector de alertas del cliente: " + alerta.imprimir() +  "\t index " + i + " vAlertas.size()= " + getvAlertas().size());
            }        
        }
    }
////////////////////////////////////////////////////////////////////////////////
    public String notificarAlerta(Alerta alerta, String accion) {
        String returnMessage = "Notificacion: " + accion + "  " + alerta.imprimir();
        this.quitarAlerta(alerta);
        JOptionPane.showMessageDialog(null, returnMessage, "Notificacion de Alerta", JOptionPane.INFORMATION_MESSAGE);
        
        return returnMessage;//es el mensaje que recibe el servidor, porque es quien invoca este metodo en el cliente
    }
////////////////////////////////////////////////////////////////////////////////
}
////////////////////////////////////////////////////////////////////////////////